プレビュー提供中の、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用する方法を確認してみた
データ事業本部 インテグレーション部 機械学習チームの鈴木です。
8月末にプレビュー提供で、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用できるようになったアナウンスがありました。
BigQuery MLから利用できるLLMの種類が増えると、BigQuery内のデータを処理するためのモデルの選択肢が広がって嬉しいので、早速試してみました。
なお、プレビュー提供版ですので、内容は記事執筆時点のものになります。
紹介したい機能について
今回紹介するアップデートは、マネージドAPIとして提供されているAnthropic ClaudeモデルをリモートモデルとしてBigQueryに設定することで、ML.GENERATE_TEXT
関数で利用できるというものになります。
以下の関数のガイドにもClaudeの情報が追加されています。
マネージドAPIは、Vertex AIが提供するデプロイ不要なLLMのAPIになります。現時点では Anthropic Claudeを含むいくつかのパートナーモデルが提供されています。Anthropic ClaudeのマネージドAPI自体は一般提供されています。
BigQuery MLから利用できるパートナーモデルのマネージドAPIは、Anthropic Claudeが初めてになります。
マネージドAPIの料金については以下にガイドに記載があります。
利用例の紹介
利用までに必要な内容
BigQueryで使用するにあたって、以下の内容を行う必要があります。
- Anthropic Claudeの使用したいモデルのマネージドAPIを有効化する。
- BigQueryで外部接続を作成する。
- BigQueryでリモートモデルを作成する。
- BigQueryで
ML.GENERATE_TEXT
関数を使い、マネージドAPIにリクエストを送る。
手順はML.GENERATE_TEXT
関数のガイドを主に参考にしました。
1. マネージドAPIの有効化
Model GardenでマネージドAPIを有効化します。今回はClaude 3.5 Sonnetを利用しました。
Model GardenでClaude 3.5 Sonnetのモデルカードを開きました。
有効にするをクリックしました。有効化にあたり、利用規約と料金に関する承諾が求められるため、内容を確認して同意しました。
今回はBigQueryのSQLから利用しますが、モデルカードではPythonやCurlなどでのモデルの利用方法について紹介されているため、全般的な使い方について参考になるので一読することをお勧めします。
2. BigQueryで外部接続・リモートモデルを作成
BigQueryでモデルにアクセスするための設定を行いました。
手順自体は以前ご紹介したtext-bisonのものと同じなため、ポイントとなる点を中心にご紹介します。
まず、外部データソースのリージョンはus-east5
を選びました。記事執筆時点では、Claude 3.5 SonnetのマネージドAPIはus-east5
およびeurope-west1
で提供されているためです。
外部接続が作成できたら、外部接続のサービスアカウントにVertex AIユーザーを追加しておきました。
次にリモートモデルを作成しました。まず、us-east5
のデータセットを作成しました。
以下のSQLでリモートモデルを作成しました。(プロジェクトIDは自身のものに置き換えてください)
CREATE OR REPLACE MODEL
`プロジェクトID.claude_sample.vertex_ai_claude_sonnet35`
REMOTE WITH CONNECTION `プロジェクトID.us-east5.claude35sonnet`
OPTIONS (ENDPOINT = 'claude-3-5-sonnet@20240620');
ENDPOINT
で使用するモデルを指定しました。今回はモデルカードで表示されていたバージョン付きのclaude-3-5-sonnet@20240620
を指定しました。バージョンを指定しない場合は、モデルの最新バージョンが使用されます。
3. テキストの生成
接続ができたので、SQLからLLMを利用しました。
SELECT *
FROM ML.GENERATE_TEXT(
MODEL `プロジェクトID.claude_sample.vertex_ai_claude_sonnet35`,
(
SELECT '次の文章の感情を教えてください:今日は暖かくて過ごしやすい日なので嬉しいです。' AS prompt
),
STRUCT(
100 AS max_output_tokens, 0.5 AS top_p,
40 AS top_k, TRUE AS flatten_json_output)
);
temperature
の指定ができないなど微妙な違いはありますが、ほかのモデルと同じ関数で、BigQueryからClaude 3.5 Sonnetが利用できました。
最後に
8月末にプレビュー提供開始がアナウンスされた、BigQuery MLからVertex AIのAnthropic Claudeモデルを利用する方法を確認しました。
これまではGemini以外を使う場合は、LLMを利用するためのAPIにリクエストを送るCloud Functionsを自作してリモート関数として使う必要がありましたが、ML.GENERATE_TEXT
関数でパートナーモデルが利用できるようになることで選択肢が増えてとても嬉しいですね。